Automatically translating a list of business processes into an expert-system knowledgebase

ABSTRACT

A method and associated systems for automatically generating an ontology and a set of axioms from a business-process model that represents the operations of a business. This ontology and set of axioms may be used to create the knowledgebase of an artificially intelligent expert system that emulates the business operations. A processor parses a representation of business processes stored in the business-process model, deriving a set of axioms and a set of entity classes from the parsed data. The processor uses these axioms and classes to identify concept nodes and process nodes, which it organizes into the ontology of the knowledgebase. The processor further identifies information derived from the parsed data to create a set of triple data items, each of which represents the information represented by one or more of the derived axioms. These triples are stored in the knowledgebase a triple store data structure.

This application is a continuation application claiming priority to Ser.No. 13/848,083, filed Mar. 21, 2013.

TECHNICAL FIELD

The present invention relates to using the contents of abusiness-process model to automatically generate components of anartificially intelligent computer program.

BACKGROUND

An artificially intelligent computer program may store data and logic ina knowledgebase that represents characteristics of a real-world system.The knowledgebase of an artificially intelligent expert system maycomprise an ontology and a set of axioms, and an expert system thatsimulates the operations of a business may comprise ontologies andaxioms derived from representations of those operations stored in abusiness-process model. Deriving an ontology and a set of axioms fromsuch representations may be a painstaking time-consuming task.

BRIEF SUMMARY

A first embodiment of the present invention provides a method forautomatically generating an ontology and a set of axioms from abusiness-process model, wherein the business-process model comprises arepresentation of a set of business processes, wherein the ontologycomprises a set of concept nodes and a set of process nodes, and whereinan axiom of the set of axioms comprises a subject, an object, and apredicate, the method comprising:

a processor of a computer system parsing the representation into a setof parsed data;

the processor deriving the set of axioms as a function of the set ofparsed data;

the processor identifying the set of concept nodes as a function of theset of parsed data and identifying the set of process nodes as a furtherfunction of the set of parsed data;

the processor populating the ontology with the set of process nodes andthe set of concept nodes.

A second embodiment of the present invention provides a computer programproduct, comprising a computer-readable hardware storage device having acomputer-readable program code stored therein, said program codeconfigured to be executed by a processor of a computer system toimplement a method for automatically generating an ontology and a set ofaxioms from a business-process model, wherein the business-process modelcomprises a representation of a set of business processes, wherein theontology comprises a set of concept nodes and a set of process nodes,and wherein an axiom of the set of axioms comprises a subject, anobject, and a predicate, the method comprising:

the processor parsing the representation into a set of parsed data;

the processor deriving the set of axioms as a function of the set ofparsed data;

the processor identifying the set of concept nodes as a function of theset of parsed data and identifying the set of process nodes as a furtherfunction of the set of parsed data;

the processor populating the ontology with the set of process nodes andthe set of concept nodes.

A third embodiment of the present invention provides a computer systemcomprising a processor, a memory coupled to said processor, and acomputer-readable hardware storage device coupled to said processor,said storage device containing program code configured to be run by saidprocessor via the memory to implement a method for automaticallygenerating an ontology and a set of axioms from a business-processmodel, wherein the business-process model comprises a representation ofa set of business processes, wherein the ontology comprises a set ofconcept nodes and a set of process nodes, and wherein an axiom of theset of axioms comprises a subject, an object, and a predicate, themethod comprising:

the processor parsing the representation into a set of parsed data;

the processor deriving the set of axioms as a function of the set ofparsed data;

the processor identifying the set of concept nodes as a function of theset of parsed data and identifying the set of process nodes as a furtherfunction of the set of parsed data;

the processor populating the ontology with the set of process nodes andthe set of concept nodes.

A fourth embodiment of the present invention provides a process forsupporting computer infrastructure, said process comprising providing atleast one support service for at least one of creating, integrating,hosting, maintaining, and deploying computer-readable program code in acomputer system, wherein the program code in combination with saidcomputer system is configured to implement a method for automaticallygenerating an ontology and a set of axioms from a business-processmodel, wherein the business-process model comprises a representation ofa set of business processes, wherein the ontology comprises a set ofconcept nodes and a set of process nodes, and wherein an axiom of theset of axioms comprises a subject, an object, and a predicate, themethod comprising:

a processor of a computer system parsing the representation into a setof parsed data;

the processor deriving the set of axioms as a function of the set ofparsed data;

the processor identifying the set of concept nodes as a function of theset of parsed data and identifying the set of process nodes as a furtherfunction of the set of parsed data;

the processor populating the ontology with the set of process nodes andthe set of concept nodes.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows the structure of a computer system and computer programcode that may be used to implement a method for automatically generatingan ontology and a set of axioms from a business-process model inaccordance with embodiments of the present invention.

FIG. 2 is a flow chart that summarizes an embodiment of a method forautomatically generating an ontology and a set of axioms from abusiness-process model in accordance with embodiments of the presentinvention.

FIG. 3 is a flow chart that further describes the ontology-creationprocess and the triple store-creation process of FIG. 2 steps 207-211 inaccordance with embodiments of the present invention.

DETAILED DESCRIPTION

The present system automates the design and implementation of expertsystems and other artificially intelligent systems by automaticallygenerating an ontology and a set of axioms from information stored in abusiness-process model.

An expert system is an artificially intelligent computer program thatmimics the cognitive behavior of human beings. The artificialintelligence that underlies such a program may be stored in a datastructure known as a knowledge base, and a knowledge base may beimplemented as a set of “ontology” data models and a set of “triplestore” data repositories, wherein the ontologies and triple storesrepresent the intelligence comprised by a set of axioms.

In this context, one or more axioms may comprise a rule or logicalstatement of a function or process. Such an axiom may comprise an inputentity, a process, and an output entity, wherein the process generatesthe output entity as a function of the input entity.

In this context, an ontology is a representation of knowledge within aparticular context, where that context is known as the “domain” of theontology. An ontology stores knowledge, as conceptualized within acontext of a domain, as a set of concepts and as relationships betweenpairs of those concepts.

In an example, an ontology defined within the domain of a company'scomputer network might represent concepts:

-   -   user    -   computer    -   memory    -   installed memory    -   memory usage.

The ontology might further represent relationships:

-   -   user may use computer    -   memory may be installed    -   computer may contain installed memory    -   user may monitor usage of installed memory.

An axiom is a logical premise that may be used to draw a conclusion orto make a decision. Here, the logic comprised by an axiom may berepresented as a “triple” data structure that comprises a predicate, asubject, and an object, wherein the predicate identifies an action orfunction; the subject performs the action or function or is an input tothe action or function; and the object is a result of the action orfunction or is an entity upon which the action or function is performed.

In an example, a triple “monitors (user, memory usage)” might representan axiom “User monitors memory usage.” In this example, the triple'spredicate is “monitors,” its subject is “user,” and its object is“memory usage.”

An axiom represented by a triple may be expressed in other forms or withother types of syntax. The above triple, for example, may be equivalentto a functional expression “memoryusage hasmonitor user.”

An expert system may make decisions based on a set of axioms stored as aset of triples. Such a stored set may be known as a “triple store,” andsuch a triple store may be organized into data structures that maycomprise, but are not limited to, linked lists, trees, tables,databases, directed graphs, networks, or semantic chains.

In an example, a data structure that links or otherwise relates twotriples:

-   -   monitor (user, memory usage)→imply (memory usage, memory)

might express a more complex, conditional axiom: “If a user ismonitoring memory usage, then the existence of memory usage implies thatmemory is installed” or, more simply, “Memory must be installed if auser is monitoring memory usage.”

An expert system might use such a pair of related triples, possiblyaugmented by other axioms, by other known facts, or by other extrinsicinformation sources, to infer an answer to a user's question “Is memoryinstalled in my computer?”

The structures and formats illustrated here are not intended to implyconstraints upon the types of ontologies and expert systems that may bewithin the scope of the present invention. The method of the presentinvention may be used with expert systems and business-process modelsthat comprise other types of representations of axioms, triples, andtriple stores.

Creating an ontology and generating a corresponding set of axioms bypopulating a triple store may be complex and resource-intensive tasks.Special care must be taken to ensure that the concepts, processes, andrelationships that may be comprised by an ontology are accuratelyrepresented within the context of the ontology (wherein such a contextmay be referred to as the ontology's “domain.”)

A concept “wing” for example, may have different meanings and may berepresented differently in an ontology that represents knowledge withinthe context of the aircraft industry than the concept “wing” would in anontology that represents knowledge within the context of the science ofornithology. In another example, depending on an ontology's domain, aconcept “CD” could be interpreted as referring either to a certificateof deposit or to a compact disc.

The method of the present invention may automatically generate anontology through an automated translation of all or part of the contentson a business-process model. Such automated translation of abusiness-process model ensures that the ontology comprises concepts andrelationships appropriate to the domain or context of thebusiness-process model.

The method of the present invention further uses all or part of thecontents of the business-process model to initialize a triple-store datastructure and to automatically populate that data structure with“triple” representations of axioms that the method automatically derivesfrom the business-process model. Here, such axioms may representconcepts comprised by the business-process model within the context ofthe business-process model's domain.

A business-process model represents the business processes of anenterprise. A business-process model may comprise a formal or informalrepresentation of core business characteristics, operations, andfunctions, such as the business's structure or methods of creatingrevenue. A business-process model might comprise, but is not limited to,representations of the business's policies, procedures, serviceofferings or product lines, organizational structures, securityframework, or workflows.

A business process may be a set of related activities that a businessdirects toward producing a service or product for a particular customeror customers. Business processes may comprise, but are not limited to:operational processes that implement the primary operations of theenterprise, such as manufacturing, logistics, or sales; managementprocesses, such as executive-management policies or line-supervisionprocedures; and support processes, which may comprise peripheralfunctions within the scope of departments like Human Resources orCustomer Support.

A business-process model may comprise representations of some or all ofan enterprise's business processes as combinations of structured andunstructured information. Such a model may comprise data from which anontology and a set of axioms may be derived, wherein the domain of theresulting ontology is appropriate to the context of the informationcomprised by the business-process model. Extracting, analyzing, andstructuring this information can be a challenging task if done manually,but the present invention simplifies this process by automaticallygenerating a domain-appropriate ontology and a set of axioms from abusiness-process model.

FIG. 1 shows the structure of a computer system and computer programcode that may be used to implement a method for automatically generatingan ontology and a set of axioms from a business-process model inaccordance with embodiments of the present invention. FIG. 1 refers toobjects 101-115.

Aspects of the present invention may take the form of an entirelyhardware embodiment, an entirely software embodiment (includingfirmware, resident software, micro-code, etc.) or an embodimentcombining software and hardware aspects that may all generally bereferred to herein as a “circuit,” “module,” or “system.” Furthermore,in one embodiment, the present invention may take the form of a computerprogram product comprising one or more physically tangible (e.g.,hardware) computer-readable medium(s) or devices havingcomputer-readable program code stored therein, said program codeconfigured to be executed by a processor of a computer system toimplement the methods of the present invention. In one embodiment, thephysically tangible computer readable medium(s) and/or device(s) (e.g.,hardware media and/or devices) that store said program code, saidprogram code implementing methods of the present invention, do notcomprise a signal generally, or a transitory signal in particular.

Any combination of one or more computer-readable medium(s) or devicesmay be used. The computer-readable medium may be a computer-readablesignal medium or a computer-readable storage medium. Thecomputer-readable storage medium may be, for example, but is not limitedto, an electronic, magnetic, optical, electromagnetic, infrared, orsemiconductor system, apparatus, or device, or any suitable combinationof the foregoing. More specific examples (a non-exhaustive list) of thecomputer-readable storage medium or device may include the following: anelectrical connection, a portable computer diskette, a hard disk, arandom access memory (RAM), a read-only memory (ROM), an erasableprogrammable read-only memory (EPROM or flash memory), Radio FrequencyIdentification tag, a portable compact disc read-only memory (CD-ROM),an optical storage device, a magnetic storage device, or any suitablecombination of the foregoing. In the context of this document, acomputer-readable storage medium may be any physically tangible mediumor hardware device that can contain or store a program for use by or inconnection with an instruction execution system, apparatus, or device.

A computer-readable signal medium may include a propagated data signalwith computer-readable program code embodied therein, for example, abroadcast radio signal or digital data traveling through an Ethernetcable. Such a propagated signal may take any of a variety of forms,including, but not limited to, electro-magnetic signals, optical pulses,modulation of a carrier signal, or any combination thereof.

Program code embodied on a computer-readable medium may be transmittedusing any appropriate medium, including but not limited to wirelesscommunications media, optical fiber cable, electrically conductivecable, radio-frequency or infrared electromagnetic transmission, etc.,or any suitable combination of the foregoing.

Computer program code for carrying out operations for aspects of thepresent invention may be written in any combination of one or moreprogramming languages, including, but not limited to programminglanguages like Java, Smalltalk, and C++, and one or more scriptinglanguages, including, but not limited to, scripting languages likeJavaScript, Peal, and PHP. The program code may execute entirely on theusers computer, partly on the users computer, as a stand-alone softwarepackage, partly on the user's computer and partly on a remote computer,or entirely on the remote computer or server. In the latter scenario,the remote computer may be connected to the user's computer through anytype of network, including a local area network (LAN), a wide areanetwork (WAN), an intranet, an extranet, or an enterprise network thatmay comprise combinations of LANs. WANs, intranets, and extranets, orthe connection may be made to an external computer (for example, throughthe Internet using an Internet Service Provider).

Aspects of the present invention are described above and below withreference to flowchart illustrations and/or block diagrams of methods,apparatus (systems) and computer program products according toembodiments of the present invention. It will be understood that eachblock of the flowchart illustrations, block diagrams, and combinationsof blocks in the flowchart illustrations and/or block diagrams of FIGS.1-4 can be implemented by computer program instructions. These computerprogram instructions may be provided to a processor of a general purposecomputer, special purpose computer, or other programmabledata-processing apparatus to produce a machine, such that theinstructions, which execute via the processor of the computer or otherprogrammable data-processing apparatus, create means for implementingthe functions/acts specified in the flowchart and/or block diagram blockor blocks.

These computer program instructions may also be stored in acomputer-readable medium that can direct a computer, other programmabledata-processing apparatus, or other devices to function in a particularmanner, such that the instructions stored in the computer-readablemedium produce an article of manufacture, including instructions thatimplement the function/act specified in the flowchart and/or blockdiagram block or blocks.

The computer program instructions may also be loaded onto a computer,other programmable data-processing apparatus, or other devices to causea series of operational steps to be performed on the computer, otherprogrammable apparatus, or other devices to produce acomputer-implemented process such that the instructions that execute onthe computer or other programmable apparatus provide processes forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

The flowchart illustrations and/or block diagrams FIGS. 1-4 illustratethe architecture, functionality, and operation of possibleimplementations of systems, methods and computer program productsaccording to various embodiments of the present invention. In thisregard, each block in the flowchart or block diagrams may represent amodule, segment, or portion of code, wherein the module, segment, orportion of code comprises one or more executable instructions forimplementing one or more specified logical function(s). It should alsobe noted that, in some alternative implementations, the functions notedin the block may occur out of the order noted in the figures. Forexample, two blocks shown in succession may, in fact, be executedsubstantially concurrently, or the blocks may sometimes be executed inthe reverse order, depending upon the functionality involved. It willalso be noted that each block of the block diagrams and/or flowchartillustrations, and combinations of blocks in the block diagrams and/orflowchart illustrations, can be implemented by special-purposehardware-based systems that perform the specified functions or acts, orcombinations of special-purpose hardware and computer instructions.

In FIG. 1, computer system 101 comprises a processor 103 coupled throughone or more I/O Interfaces 109 to one or more hardware data storagedevices 111 and one or more I/O devices 113 and 115.

Hardware data storage devices 111 may include, but are not limited to,magnetic tape drives, fixed or removable hard disks, optical discs,storage-equipped mobile devices, and solid-state random-access orread-only storage devices. I/O devices may comprise, but are not limitedto: input devices 113, such as keyboards, scanners, handheldtelecommunications devices, touch-sensitive displays, tablets, biometricreaders, joysticks, trackballs, or computer mice; and output devices115, which may comprise, but are not limited to printers, plotters,tablets, mobile telephones, displays, or sound-producing devices. Datastorage devices 111, input devices 113, and output devices 115 may belocated either locally or at remote sites from which they are connectedto I/O Interface 109 through a network interface.

Processor 103 may also be connected to one or more memory devices 105,which may include, but are not limited to, Dynamic RAM (DRAM), StaticRAM (SRAM), Programmable Read-Only Memory (PROM), Field-ProgrammableGate Arrays (FPGA), Secure Digital memory cards, SIM cards, or othertypes of memory devices.

At least one memory device 105 contains stored computer program code107, which is a computer program that comprises computer-executableinstructions. The stored computer program code includes a program thatimplements a method for automatically generating an ontology and a setof axioms from a business-process model in accordance with embodimentsof the present invention, and may implement other embodiments describedin this specification, including the methods illustrated in FIGS. 1-4.The data storage devices 111 may store the computer program code 107.Computer program code 107 stored in the storage devices 111 isconfigured to be executed by processor 103 via the memory devices 105.Processor 103 executes the stored computer program code 107.

Thus the present invention discloses a process for supporting computerinfrastructure, integrating, hosting, maintaining, and deployingcomputer-readable code into the computer system 101, wherein the code incombination with the computer system 101 is capable of performing amethod for automatically generating an ontology and a set of axioms froma business-process model.

Any of the components of the present invention could be created,integrated, hosted, maintained, deployed, managed, serviced, supported,etc. by a service provider who offers to facilitate a method forautomatically generating an ontology and a set of axioms from abusiness-process model. Thus the present invention discloses a processfor deploying or integrating computing infrastructure, comprisingintegrating computer-readable code into the computer system 101, whereinthe code in combination with the computer system 101 is capable ofperforming a method for automatically generating an ontology and a setof axioms from a business-process model.

One or more data storage units 111 (or one or more additional memorydevices not shown in FIG. 1) may be used as a computer-readable hardwarestorage device having a computer-readable program embodied thereinand/or having other data stored therein, wherein the computer-readableprogram comprises stored computer program code 107. Generally, acomputer program product (or, alternatively, an article of manufacture)of computer system 101 may comprise said computer-readable hardwarestorage device.

FIG. 2 is a flow chart that summarizes an embodiment of a method forautomatically generating an ontology and a set of axioms from abusiness-process model in accordance with embodiments of the presentinvention. FIG. 2 comprises steps 201-211. FIG. 3 describes steps207-211 in greater detail.

A business-process model may formally or informally describe activitiesthat a business directs toward producing a service or product for one ormore customers. Business-process models may take many forms and may beorganized in many ways, sometimes comprising both structured andunstructured stores of data.

The method of FIG. 2 automatically and dynamically generates an ontologyand a set of axioms from a business-process model, wherein thebusiness-process model represents business activities as sets ofprocesses, wherein the business-process model associates a process ofthe set of processes with one or more input entities and with one ormore output entities; and wherein the business-process model representsthe process as performing a function on the one or more input entitiesto produce the one or more output entities, or represents the process asbeing performed by the one or more input entities upon the one or moreoutput entities.

An ontology may comprise information organized into one or morenetworks, trees, directed or nondirected graphs, or other types of datastructures. Each such data structure may store information as sets ofnodes, wherein a node identifies one or more elements of the informationrepresented by the ontology.

In some embodiments, an ontology may comprise process nodes and conceptnodes, wherein a process node may identify a function of a businessprocess and a concept node may identify a class of concepts that may beassociated with an input entity of a business process, an output entityof a business process, or a function of a business process. Because thenodes comprised by an ontology may be organized into hierarchicalstructures, a node may be identified by a set of nodes that comprise apath through a hierarchical structure.

A concept node “continent/country/city,” for example, might identify aclass or category of stored data items that each identify or representthe name of a city. In this example, the “city,” “country,” and“continent” concept nodes might be organized into a branch of a treelikedata structure comprised by an ontology. In such a case, the “city” nodemay be accessed by traversing a branch that comprises related nodes“continent” and “country.”

Such a structure may imply hierarchical or other types of logicalrelationships among data items that are respectively associated with thethree classes of entities represented by the three nodes in the branch.A set of data items of class “city,” for example, may be associated witha subset of a set of data items that have a particular value of class“country,” and those two sets of data items may be further associatedwith a subset of a set of data items that have a particular value ofclass “continent.” Thus a stored data item “Los Angeles” of class “city”might be associated in this exemplary ontology with a set of data itemsassociated with a value “United States” of class “country” and with aset of data items associated with a “North America” of class“continent.”

Another type of node that may be stored in an ontology is a “process”node, which identifies a function performed by a business process. In anexample, a process node “marketprojection/AggregateCitySales” mightidentify a process wherein a step of a market-projection procedurecomprises a function of aggregating sales figures recorded in one city.As with concept nodes, a process node may be, but is not necessarily,logically represented in an ontology as a node of a set of nodesorganized into a hierarchical, branching, or nested data structure.

In an ontology, a process node may be associated with a set of conceptnodes. A first node of the associated set of concept nodes may be asubject node, wherein the relationship between the subject node and theprocess node is analogous to the relationship between an input entityand a function of a business process in a business-process model. Asecond node of the associated set of concept nodes may be an objectnode, wherein the relationship between the object node and the processnode is analogous to the relationship between an output entity and afunction of a business process in a business-process model. A triplecomprising a process node and a pair of related concept nodes may thusbe analogous to a function, subject, and object of a business process.As will be explained below, embodiments of the present invention maygenerate and further store this type of information as a triple dataitem that comprises a predicate (function), subject, and object. In suchembodiments, the method of the present invention may organize and storea set of such triple data items in a data structure or repository knownas a “triple store.”

In some cases, an ontology may further comprise a triple store or anassociated set of axioms, wherein an axiom of the associated set ofaxioms is comprised by the ontology, rather than being distinct from theontology.

The method of the present invention thus relates information stored in abusiness-process model to information that would be stored in anontology and further relates such modeled information to representationsof a set of axioms.

Step 201 dynamically parses metadata comprised by a business-processmodel in order to identify information that may be used to automaticallygenerate an ontology's data structure, concept, and process nodes, a setof related axioms, and a related triple store. As will be explainedbelow, the parsed information may represent one or more businessprocesses represented in the business-process model, and may furthercomprise representations of the inputs and outputs (or, analogously,subjects and objects) associated with each such process.

In some embodiments, the parsing comprises identifying a first inputentity, a first output entity, and a first function associated with afirst business process comprised by the business-process model. In somecases, the parsing comprises identifying a proper subset of the firstinput entity, the first output entity, and the first function associatedwith the first business process.

In some embodiments, the parsing may further comprise identifying a setof classes, wherein the first input entity may be associated with afirst class of the set of classes, the first output entity may beassociated with a second class of the set of classes, and the firstfunction may be associated with a third class of the set of classes.

The parsing may comprise any parsing method or technology known to thoseskilled in the art of computer science. The choice and implementation ofsuch a parsing method may be implementation-dependent and may be afunction of considerations like the contents and internal organizationsof the business-process model and ontology, the formats in which axiomsare represented or stored, the goals of the system designer, and therelationships among the business-process model and the expert system orknowledgebase that comprises the ontology and axioms.

Step 203 uses the parsed metadata generated in step 201 to automaticallyand dynamically generate a set of axioms that represent characteristicsof the business processes identified in the business-process model. Theformat and representation details of these axioms areimplementation-dependent and can be determined through techniques andprocedures known to those skilled in the art of computer science,management science, or information technology.

In some embodiments, an axiom of the set of axioms may be represented inmore than one format, including both structured and unstructuredformats. In embodiments, the general structure of a first axiom of theset of axioms may be that of a logical statement, expressed in anyformat, including mathematical, functional, and freeform-text formats,known to those skilled in the art.

In other embodiments, a general structure of a first axiom may be thatof a first function, wherein the first function is performed upon afirst input entity in order to produce a first output entity, or whereinthe first function is performed by a first input entity upon a firstoutput entity. In such embodiments, the first input entity may beassociated with a first entity class, the first output entity may beassociated with a second entity class, and the first function may beassociated with a third entity class, wherein the method of step 203 mayidentify the first, second, and third entity classes and theirrespective associations with the first input entity, the first outputentity, and the first function. In some embodiments, theseidentifications and associations may be defined in a step analogous tostep 203 that is performed concurrently with step 201. In someembodiments, these identifications and associations may be definedthrough other means, such as by reference to extrinsic information,standards, or procedures, through other logical or deductive procedures,or through reference to a software template.

In some embodiments, an axiom of the set of axioms may be represented byone or more “triple” data structures, wherein a set of these triple datastructures is organized and stored into a larger data structure known asa “triple store.” The format of a triple may beimplementation-dependent, and in embodiments described herein, a triplemay conform to the generalized functional syntax:

-   -   predicate (subject, object).

In other embodiments, an axiom may be represented in other formats or byother syntactical forms, including various types of computerinstructions, scripts, or freeform text, using techniques and proceduresknown to those skilled in the art of computer science, managementscience, or artificial intelligence.

Step 205 automatically and dynamically identifies entity classes thatare represented in the parsed business-process model metadata generatedin step 201. An identified class may be associated with or deemedanalogous to an ontology concept node. An identified class may beassociated with an input entity, output entity, or function associatedwith an axiom, associated with a business process, or associated withsome element of the business-process model data parsed in step 201. Anidentified class may be associated with a subject, object, or predicateassociated with a triple.

The details of the methods of these identifications or associations areimplementation-dependent, and may employ data-search, data-analysis, ordata-manipulation tools and techniques known to those skilled in the artof computer science, management science, artificial intelligence, orinformation technology.

Step 207 uses the information generated in steps 201-205 toautomatically and dynamically generate an ontology. This generation maycomprise identifying sets of concept nodes, sets of process nodes, anddata structures that comprise the sets of concept nodes and the sets ofprocess nodes. These data structures, in conjunction with the triplestore generated in steps 209-211, may identify or represent data andlogic that may be used to design and implement a knowledgebase of anexpert system. The domain of this generated ontology and thesignificance and meaning of the axioms represented by the contents ofthe triple store may be a function of the context of the informationrepresented by the contents of the business-process model.

In some embodiments, these data structures may comprise trees, networks,directed or nondirected graphs, or other types of data structures thatidentify relationships among the generated nodes, wherein the datastructures may be identified as functions of the parsed business-processmodel metadata that was generated in step 201 or may be identified asfunctions of the axioms and related data and logic identified in step203.

In some embodiments, this automatically generated ontology may furthercomprise the triple store generated in step 211. In other embodiments,the generated ontology and the generated triple store may be distinctentities.

The method of step 207 is described in greater detail in steps 301-303of FIG. 3.

Step 209 automatically and dynamically identifies a set of triple dataitems, wherein each triple of the set of triples comprises a subject, anobject, and a predicate. A first triple of the set of triples maycomprise a first subject, a first object, and a first predicate, whereinthe first subject, the first object, and the first predicate may beinferred from a representation of a first business process comprised bythe parsed business-process model data generated in step 201. In someembodiments, the first subject, the first object, and the firstpredicate may be may be respectively associated with a first inputentity, a first output entity, and a first function, wherein the firstinput entity, the first output entity, and the first function arecomprised by a first axiom generated in step 203.

In other words, a first triple identified in step 209 may be associatedwith a first axiom generated in step 203, and with a first businessprocess comprised by the business-process model or comprised by theparsed data generated by step 201.

Step 211 uses the information derived in steps 201-209 to automaticallyand dynamically define, initialize, and populate a triple store datastructure with the triples generated in step 209. In this context, theterm “triple store” may refer generally to any data structure orstructured or unstructured repository that comprises a plurality oftriples. A triple store may be organized in manners that comprise, butare not limited to, one or more linked lists, trees, networks, directedor nondirected graphs, databases, other data structures, or freeformlists, text, or tables.

In some embodiments, a triple store may further comprise logicalrelationships or other associations among two or more triples comprisedby the triple store. One or more triples in such a triple store,possibly in conjunction with one or more of the logical relationships orother associations, may represent an axiom of the set of axioms derivedin step 203.

In some embodiments, the ontology generated in step 207 may furthercomprise the triple store. In other embodiments, the generated ontologyand the generated triple store may be distinct entities.

FIG. 3 is a flow chart that further describes the ontology-creationprocess and the triple store-creation process of FIG. 2 steps 207-211 inaccordance with embodiments of the present invention. FIG. 3 comprisessteps 301-311.

Step 301 automatically and dynamically identifies a set of concept nodesof an ontology as a function of the entity classes generated in step205. In embodiments, a concept node may be associated with an entityclass identified in step 205. In other embodiments, one or more conceptnodes identified in step 301 and one or more entity classes identifiedin step 205 may be related by a one-to-many relationship or by amany-to-one relationship.

A predicate, subject, or object of a triple identified in steps 307-311may be associated with no more than one class of the set of entityclasses identified by step 205 of FIG. 2 and may further be associatedwith no more than one concept node of the set of concept nodesidentified in step 301.

If a process identified by a process node in step 301 requiresarguments, those arguments may each be associated with a type or classidentified in step 205 or by a corresponding type or class identified bya concept node in step 301. A “LoanApproval” process, for example, mightbe represented as a triple, wherein the triple is associated with asubject that is of a type “qualifiedLoanUnderwriter,” and wherein thetriple is further associated with an object that is of a type“LoanApplication.” In this example, an ontology might comprise a processnode that identifies the process “LoanApproval,” further comprise arelated first concept node that identifies entity class“qualifiedLoanUnderwriter,” and further comprise a related secondconcept node that identifies entity class “LoanApplication.” Such a setof related nodes could represent a business process or an axiom whereina “qualified loan underwriter” performs a “loan approval” function upona “loan application.”

In some embodiments, an axiom of the set of axioms derived in step 203of FIG. 2 may comprise a function, an input entity, and an outputentity, wherein the function is performed upon the input entity in orderto produce the output entity, or wherein the input entity performs thefunction upon the output entity. In such embodiments, the function maybe associated with a first class of the set of entity classes identifiedby step 205 or by a first concept node identified by step 301, the inputentity may be associated with a second class of the set of entityclasses identified by step 205 or by a second concept node identified bystep 301, and the output entity may be associated with a first class ofthe set of entity classes identified by step 205 or by a third conceptnode identified by step 301.

In some embodiments, the set of concept nodes and the set of processnodes may be sufficient to describe an ontology. In other embodiments,an ontology may comprise other features or elements, such as the triplestore generated in step 211 or step 311. In some embodiments, conceptnodes and process nodes comprised by the ontology may be organized inthe ontology into one or more data structures.

In embodiments wherein an ontology comprises such a data structure,methods of the present invention may organize the process nodes andconcept nodes identified in steps 301-303 by analyzing or interpretingthe parsed metadata information generated in step 201. This parsedinformation may comprise representations of relationships among businessprocesses and entities comprised by the business-process model.Embodiments of the present invention may further use these relationshipsto organize process nodes and concept nodes into data structures withinthe ontology that represent these relationships. In some embodiments,these representations of relationships may be functions of the contextof the business-process model or may be functions of the domain of theontology.

Step 303 automatically and dynamically identifies a set of process nodesof an ontology generated by the method of the present invention byanalyzing the business processes represented in the business-processmodel data parsed in step 201. This identification may compriseidentifying a first function associated with a first axiom generated instep 203, or with a first business process comprised by thebusiness-process model, or with an element of the parsed data generatedin step 201.

In some embodiments, step 303 will identify a first process node for afirst axiom derived in step 203 for a first triple identified in step209, wherein the first process node is associated with a function of thefirst axiom or with a predicate of the first triple.

Step 305 initiates an iterative process that may be performed once foreach process node identified by step 301, and which comprises steps305-311. A first iteration of this iterative process may be performedfor a first process node of the set of process nodes identified in step301. The first iteration may initialize and populate a first triple as afunction of the first process node, wherein the first triple maycomprise a first predicate, a first subject, and a first object, whereinthe first predicate may be associated with or may be analogous to thefirst process node, and wherein the first triple may be associated withor may be analogous to a first business process of the business-processmodel. The first triple may be further associated with or analogous to afirst axiom of the set of axioms identified by step 203, wherein thefirst process node may further be associated with or analogous to afirst function of the first axiom, and wherein the first axiom may beassociated with or may be analogous to the first business process.

Each iteration of the iterative process of steps 305-311 initializes andpopulates a triple with information generated by the method of thepresent invention in steps 201-207 of FIG. 2, as elaborated by steps301-303 of FIG. 3. Upon completion of the final iteration of the processof steps 305-311, the embodiment of FIG. 3 will have generated a set oftriples and organized them into or stored them in a triple store datastructure or repository.

Step 307 identifies the first predicate of the first triple as being afunction of or equivalent to the first process node.

Step 309 identifies the first subject of the first triple and the firstobject of the first triple. In some embodiments this step identifies thefirst subject as being equivalent to or a function of a first inputentity associated with the first axiom and identifies the first objectas being equivalent to or a function of a first output entity associatedwith the first axiom. In some embodiments this step identifies the firstsubject as being associated with a first subject class or typeassociated with the first input entity and identifies the first objectas being associated with a first object class or type associated withthe first output entity. The first subject class or type and the secondsubject class or type may each have been identified in step 205 of FIG.2 and may each be associated with a respective concept node of the setof concept nodes identified in step 301.

In some embodiments, an input entity of a business process or an outputentity of a business process may be a function of another businessprocess. In such cases, one or both of the business process's inputentity and output entity may be represented as a function of a secondprocess or as a function of a third process, one or both of acorresponding axiom's input entity and output entity may be representedas a function of a second axiom or as a function of a third axiom, andone or both of a corresponding first triple's subject and object may berepresented as a predicate of a second triple or as a predicate of athird triple.

In such embodiments, a dependency between two business processes oraxioms, such as when the two processes or axioms represent steps of analgorithm, can further result in a predicate of a second triplecomprising the object of a first triple (and equivalently, a function ofa corresponding second business process or corresponding second axiomcomprising an output entity of a corresponding first business process oran output entity of a corresponding first axiom). Other methods may beused to represent, in the business-process model, in the triple store,or in the ontology, dependencies between pairs of business processes orbetween pairs of axioms. These other methods may comprise techniques,data structures, and procedures known to those skilled in the art ofcomputer science, artificial intelligence, or management science.

In an example of such embodiments, an ontology that comprises twoprocess nodes “CheckCreditScore” and “ApproveLoan” might represent thosenodes as sequential steps of a larger process, axiom, algorithm, orprocedure. The ontology might then identify a predicate of ApproveLoanto be an object (or output) of process “CheckCreditScore.” In otherwords, “CheckCreditScore” would perform a function on input data inorder to generate a positive or negative loan-approval function. Thispositive or negative function would then perform a function associatedwith the “ApproveLoan” process.

In further variations of this class of embodiments, a first process,represented as a process node, might be capable of producing many outputfunctions, each of which might be the predicate of one or more otherprocesses. A first function of these output functions might alsodetermine or identify a next process node of an overarching process,axiom, algorithm, or procedure.

In yet other variations of such embodiments, the predicate of a firsttriple may comprise a subject, object, or predicate of a second triple.Similarly, a subject, object, or predicate of the second triple may beinferred from the predicate or object of the first triple.

Step 311 initializes the first triple and populates it with the firstpredicate, the first subject, and the first object. In some embodiments,the first triple may take the form:

-   -   first predicate (first subject, first object).

In other embodiments, the first triple may conform to other structuredor unstructured formats known to those skilled in the art.

At the conclusion of the last iteration of the iterative process ofsteps 305-311, the iterative process will have generated a set oftriples that may be organized into or stored in a triple store, whereinthe triple store comprises the set of triples, wherein each triple ofthe set of triples may be associated with one axiom of the set of axiomsgenerated in step 203, and wherein each triple of the set of triples maybe associated with one business process of the set of business processescomprised by the business-process model.

In some embodiments, this triple store may be comprised by the ontologygenerated by step 209. In other embodiments, the generated ontology andthe generated triple store may be distinct entities.

The following example summarizes an embodiment of the method of thepresent invention, in accordance with the embodiments of FIGS. 1-3.

Consider a business-process model that comprises data and metadata thatrepresents a company's business processes. Embodiments of the method ofthe present invention might parse those representations into a standard,embodiment-specific, parsed format embodiment. The exact format of themodel's representations and of the parsed format are not novel featuresof the present invention and may comprise any formats known to thoseskilled in the art of management science, computer science, orartificial intelligence.

In this example, the parsed data might comprise representations of a setof business processes or rules:

-   -   (1) A regional manager prepares a regional sales report.    -   (2) A regional manager is subordinate to a national sales        manager.    -   (3) A national sales manager is subordinate to a Director of        Sales.    -   (4) Regional sales reports are compiled into a national sales        report.    -   (5) National sales reports are compiled into an annual report.

These English-language rules each correspond to logic represented by thecontents of the business-process model and, in this embodiment, eachfurther corresponds to one or more axioms of a set of axioms. Each suchaxiom comprises a function, an input entity, and an output entity,wherein the input entity may perform the function upon the outputentity, or wherein applying the function to the input entity producesthe output entity.

The present invention may represent axioms in any way known to thoseskilled in the art. The embodiment of this example represents an axiomas a straightforward statement of a logical rule or of a step of aprocess, but in other embodiments, these representations may comprisemore formal structures, including, but not limited to, hierarchical orlinked data structures.

Embodiments of the present invention may use techniques known to thoseskilled in the art to identify a set of entity classes comprised by orrepresented by the parsed data. Such techniques may comprise or berelated to language-parsing or token-identification functions commonlyused by designers of programming-language compilers, natural-languageparsers, and user interfaces. Here, these techniques may identify aclass as a noun-adjective phrase in an appropriately parsed set of data,but in other embodiments, other techniques and procedures may be used.In some cases, a class may be identified all or in part by consideringextrinsic information sources.

Similarly, embodiments of the present invention may use techniques knownto those skilled in the art to identify a set of axiom functionscomprised by or represented by the parsed data. Such techniques may berelated to language parsing functions commonly used by designers ofprogramming-language compilers, natural-language parsers, and userinterfaces. Here, these techniques may identify a function as a verb orpredicate phrase in an appropriately parsed set of data, but in otherembodiments, other techniques and procedures may be used. In some cases,a function of an axiom may be identified all or in part by consideringextrinsic information sources.

In this example, entity classes identified in the parsed data mightcomprise:

<regional manager> <regional sales report> <national sales manager><Director of Sales> <national sales report> <annual report>.

Functions identified in the parsed data might comprise:

<PrepareDocument> <SubordinateTo> <CompileInto>

Embodiments of the present invention may use a set of identified entityclasses to identify a set of ontology concept nodes, wherein a firstconcept node is identical to, analogous to, or a function of a firstidentified entity class.

Embodiments of the present invention may further use a set of identifiedfunctions to generate a set of ontology process nodes, wherein a firstprocess node is identical to analogous to, or a function of a firstidentified function.

The logic embedded in the business-process model, in the parsed data,and in the set of axioms may be used to organize process nodes andconcept nodes into a data structure that represents the logicalrelationships between the processes and the concepts in the ontology. Insome embodiments, this data structure may comprise, but is not limitedto one or more trees, directed graphs, databases, or networks.

The logic embedded in the business-process model, in the parsed data,and in the set of axioms may further be used to organize process nodesand concept nodes into triple data items, wherein each triple maycorrespond to an axiom of the set of axioms. Such a triple may berepresented in a variety of forms, but in this example, it isrepresented by using the syntax:

-   -   predicate (subject, object).

Here, a predicate of a triple is analogous to a function of acorresponding axiom, a subject of the triple is analogous to an inputentity of the corresponding axiom, and an object of the triple isanalogous to an output entity of the corresponding axiom. In thisexample, the subject may perform the function of the predicate upon theobject, or the object may be produced by applying the function of thepredicate upon the subject.

Applying this method to the parsed data of the current example, mayyield a set of triples:

-   -   (1) PrepareDocument (regional manager, regional sales report)    -   (2) SubordinateTo (regional manager, national sales manager)    -   (3) SubordinateTo (national sales manager, Director of Sales)    -   (4) CompileInto (regional sales report, national sales report)    -   (5) CompileInto (national sales report, annual report)

Each of these triples represents a rule that will be comprised by anexpert-system knowledgebase, wherein the rule is analogous to the logicof one axiom derived from the business-process model. Triple (1), forexample, may represent that an entity of class “regional manager” mayproduce an entity of class “regional sales report” by performing process“PrepareDocument.” In some embodiments, such a rule might help an expertsystem infer an answer to a user query: “Who prepares regional salesreports for North America?” or to a user query: “What are the jobfunctions of our regional manager?” In other embodiments, such a rulemight allow an expert system or other type of artificially intelligentsystem to draw other types of conclusions based on the logic representedin the ontology and the axioms represented in the business-processmodel.

The embodiment of this example may further organize the set of triplesinto a repository or data structure known generically as a “triplestore.” The format and internal structure of the triple store isdetermined by techniques and procedures known to those skilled in theart.

The ontology generated by the embodiment of the present inventiondescribed in this invention may comprise the organized set of processand concept nodes. The ontology may further comprise the generated setof axioms represented by the triple store. In some embodiments, agenerated ontology and a generated representation of a set of axioms maybe distinct entities.

What is claimed is:
 1. A method for translating a list of businessprocesses into a knowledgebase of an expert system, the methodcomprising: a processor of a computer system receiving the list ofbusiness processes, wherein a first process of the list of businessprocesses comprises a first input of a set of inputs, a first output ofa set of outputs, and a first function of a set of functions, whereinthe first function performs an operation upon the first input to producethe first output, and wherein the first process is associated with afirst domain of a set of domains; the processor generating theknowledgebase as a function of information comprised by the list ofbusiness processes and as a further function of a set of associationsbetween each business process of the list of business processes and eachdomain of the set of domains, wherein the knowledgebase comprises a setof rules and a set of concept classes, wherein a first rule of the setof rules comprises a first subject, a first object, and a firstpredicate, and wherein the set of concept classes comprises a set ofsubject classes, a set of object classes, and a set of predicateclasses; the processor associating the first subject with a firstsubject class of the set of subject classes as a function of theassociation of the first process with the first domain; the processorassociating the first object with a first object class of the set ofobject classes as a function of the association of the first processwith the first domain; and the processor associating the first predicatewith a first predicate class of the set of predicate classes as afunction of the association of the first process with the first domain.2. The method of claim 1, wherein the first subject class identifies afirst category associated with the first input.
 3. The method of claim1, wherein the first object class identifies a second categoryassociated with the first output.
 4. The method of claim 1, wherein thefirst predicate class identifies a third category associated with thefirst function.
 5. The method of claim 1, wherein the first predicateidentifies a process that is analogous to the operation performed by thefirst function.
 6. The method of claim 1, wherein the generating theknowledgebase further comprises organizing the set of concept classesinto a hierarchical data structure that is analogous to an internalorganization of the list of business processes.
 7. The method of claim1, further comprising providing at least one support service for atleast one of creating, integrating, hosting, maintaining, and deployingcomputer-readable program code in the computer system, wherein thecomputer-readable program code in combination with the computer systemis configured to implement the selecting, receiving, adding, retrieving,creating, receiving, generating, associating the first subject,associating the first object, and associating the first predicate.
 8. Acomputer program product, comprising a computer-readable hardwarestorage device having a computer-readable program code stored therein,said program code configured to be executed by a processor of a computersystem to implement a method for translating a list of businessprocesses into a knowledgebase of an expert system, the methodcomprising: the processor receiving the list of business processes,wherein a first process of the list of business processes comprises afirst input of a set of inputs, a first output of a set of outputs, anda first function of a set of functions, wherein the first functionperforms an operation upon the first input to produce the first output,and wherein the first process is associated with a first domain of a setof domains; the processor generating the knowledgebase as a function ofinformation comprised by the list of business processes and as a furtherfunction of a set of associations between each business process of thelist of business processes and each domain of the set of domains,wherein the knowledgebase comprises a set of rules and a set of conceptclasses, wherein a first rule of the set of rules comprises a firstsubject, a first object, and a first predicate, and wherein the set ofconcept classes comprises a set of subject classes, a set of objectclasses, and a set of predicate classes; the processor associating thefirst subject with a first subject class of the set of subject classesas a function of the association of the first process with the firstdomain; the processor associating the first object with a first objectclass of the set of object classes as a function of the association ofthe first process with the first domain; and the processor associatingthe first predicate with a first predicate class of the set of predicateclasses as a function of the association of the first process with thefirst domain.
 9. The computer program product of claim 8, wherein thefirst subject class identifies a first category associated with thefirst input.
 10. The computer program product of claim 8, wherein thefirst object class identifies a second category associated with thefirst output.
 11. The computer program product of claim 8, wherein thefirst predicate class identifies a third category associated with thefirst function.
 12. The computer program product of claim 8, wherein thefirst predicate identifies a process that is analogous to the operationperformed by the first function.
 13. The computer program product ofclaim 8, wherein the generating the knowledgebase further comprisesorganizing the set of concept classes into a hierarchical data structurethat is analogous to an internal organization of the list of businessprocesses.
 14. A computer system comprising a processor, a memorycoupled to said processor, and a computer-readable hardware storagedevice coupled to said processor, said storage device containing programcode configured to be run by said processor via the memory to implementa method for translating a list of business processes into aknowledgebase of an expert system, the method comprising: the processorreceiving the list of business processes, wherein a first process of thelist of business processes comprises a first input of a set of inputs, afirst output of a set of outputs, and a first function of a set offunctions, wherein the first function performs an operation upon thefirst input to produce the first output, and wherein the first processis associated with a first domain of a set of domains; the processorgenerating the knowledgebase as a function of information comprised bythe list of business processes and as a further function of a set ofassociations between each business process of the list of businessprocesses and each domain of the set of domains, wherein theknowledgebase comprises a set of rules and a set of concept classes,wherein a first rule of the set of rules comprises a first subject, afirst object, and a first predicate, and wherein the set of conceptclasses comprises a set of subject classes, a set of object classes, anda set of predicate classes; the processor associating the first subjectwith a first subject class of the set of subject classes as a functionof the association of the first process with the first domain; theprocessor associating the first object with a first object class of theset of object classes as a function of the association of the firstprocess with the first domain; and the processor associating the firstpredicate with a first predicate class of the set of predicate classesas a function of the association of the first process with the firstdomain.
 15. The computer system of claim 14, wherein the first subjectclass identifies a first category associated with the first input. 16.The computer system of claim 14, wherein the first object classidentifies a second category associated with the first output.
 17. Thecomputer system of claim 14, wherein the first predicate classidentifies a third category associated with the first function.
 18. Thecomputer system of claim 14, wherein the first predicate identifies aprocess that is analogous to the operation performed by the firstfunction.
 19. The computer system of claim 14, wherein the generatingthe knowledgebase further comprises organizing the set of conceptclasses into a hierarchical data structure that is analogous to aninternal organization of the list of business processes.